<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Projeto extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('cadastros_model', 'cadastros');
        $this->load->model('usuarios_model', 'users');
        $this->load->library('form_validation');
        $this->load->model('projetos_model', 'projetos');

        $this->userKey = $this->users->getChave(userKey());
        
    }

    
    /* Configuração */

    public function categorias() {
        $data['nome_pagina'] = "Gerenciar Areas";
        $data['categorias'] = $this->projetos->getCategorias();
        $this->load->view('config_categoria', $data);
    }

    public function banca() {
        $data['nome_pagina'] = "Gerenciar Banca";
        $data['bancas'] = $this->projetos->getBancas();
        $this->load->view('config_banca', $data);
    }

    public function projetos($aba=0) {
        $data['aba'] = $aba; //SERVE PRA QUANDO FOR REDIRECIONADO JÁ ABRIR A ABA CORRESPNDENTE A AREA DO PROJETO
        
        $data['nome_pagina'] = "Gerenciar Projetos";
        $data['lista_categorias'] = $this->projetos->getCategorias();
        $this->load->view('config_projetos', $data);
    }

    /* Abrir popup */

    public function pop_addCategoria() {
        $this->load->view('pop-ups/add_categoria');
    }
     public function pop_addBanca() {
        $this->load->view('pop-ups/add_banca');
    }
    public function addProjeto() {
        $data['categorias'] = $this->projetos->getCategorias();
        $data['bancas'] = $this->projetos->getBancas();
        $data['titulo'] = "Novo Projeto";
        $this->load->view('pop-ups/add_projeto', $data);
    }

    public function pop_verCategoria($id) {
        $data['categoria'] = $this->projetos->getCategoriasById($id);
        $this->load->view('pop-ups/ver_categoria', $data);
    }
    public function pop_verBanca($id) {
        $data['banca'] = $this->projetos->getBancaById($id);
        $this->load->view('pop-ups/ver_banca', $data);
    }
    public function verProjeto($id) {
        die('Finalizando');
        $data['projeto'] = $this->projetos->getProjetosById($id);
        $data['categorias'] = $this->projetos->getCategorias();
        $data['bancas'] = $this->projetos->getBancas();
//        $data['disciplinas'] = $this->cadastros->getDisciplinas();
        $data['titulo'] = "Novo Projeto";


        $this->load->view('pop-ups/ver_projeto', $data);
    }

    /* Executar funções */

    public function submitAdd_categoria() {
        $put = array('DESCRICAO' => $this->input->post('DESCRICAO'));

        if ($this->projetos->novaCategoria($put)) {
            echo "ok";
        } else {
            echo "Ocorreu um erro: " . trigger_error();
        }
    }
    public function submitAdd_banca() {
        $put = array('DESCRICAO' => $this->input->post('DESCRICAO'));

        if ($this->projetos->novaBanca($put)) {
            echo "ok";
        } else {
            echo "Ocorreu um erro: " . trigger_error();
        }
    }

    public function submitAdd_projeto() {
//       echo "<pre>";
//       print_r($this->input->post('prioridadeDisciplina'));
//       echo "<pre>";
//        die();
        $put = array(
            'NOME' => $this->input->post('NOME'),
            'DESCRICAO' => $this->input->post('DESCRICAO'),
            'COD_CATEGORIA' => $this->input->post('CATEGORIA'),
            'COD_BANCA' => $this->input->post('BANCA'),
        );

        $id = $this->projetos->novoProjeto($put);
       
        if ($id) {
            if ($this->input->post('disciplinas')!=""){
                $this->novoProjetoDisciplina($id, $this->input->post('disciplinas'), $this->input->post('bibliografia'), $this->input->post('prioridadeDisciplina'));
            }
            if ($this->input->post('topicos')!=""){
                $this->novoProjetoTopico($id, $this->input->post('topicos'),$this->input->post('prioridade'));
            }
            


            echo "ok";
        } else {
            echo "Ocorreu um erro: " . trigger_error();
        }
    }
    public function novoProjetoDisciplina($codProjeto,$codDisciplinas,$biblioRecomendada,$prioridade){
        $dados['COD_PROJETO']=$codProjeto;
        foreach ($codDisciplinas as $key => $codigo) {
            $dados['COD_DISCIPLINA' ] =  $codigo;
            $dados['BIBLIOGRAFIA_RECOMENDADA' ] =  $biblioRecomendada[$codigo];
            $dados['PRIORIDADE' ] =  $prioridade[$codigo] ==""? '1':$prioridade[$codigo];        
            $this->projetos->novoProjetoDisciplina($dados);
        }
           
    }
    public function novoProjetoTopico($codProjeto,$codTopicos,$prioridade){
        $dados['COD_PROJETO']=$codProjeto;
        foreach ($codTopicos as $codTopico) {
            $dados['PRIORIDADE']= $prioridade[$codTopico]==""? "1":$prioridade[$codTopico];
            
            $topicos=  $this->projetos->getTopicosLivroByTopicoBanca($codTopico);
            if (!is_null($topicos)){
                foreach ($topicos as $topico) {
                    $dados['COD_TOPICO']=$topico['CODIGO'];
                    $this->projetos->novoProjetoTopicos($dados);
                }
            }
        }
      //  echo $codProjeto.$codTopicos.$prioridade;
        
    }
    public function submitEdit_categoria() {

        $put = array('DESCRICAO' => $this->input->post('DESCRICAO'));
        if ($this->projetos->editaCategoria($this->input->post('CODIGO'), $put)) {
            echo "ok";
        } else {
            echo "Ocorreu um erro: " . trigger_error();
        }
    }
    public function submitEdit_banca() {
        
        $put = array('DESCRICAO' => $this->input->post('DESCRICAO'));
        if ($this->projetos->editaBanca($this->input->post('CODIGO'), $put)) {
            echo "ok";
        } else {
            echo "Ocorreu um erro: " . trigger_error();
        }
    }

    public function submit_delCategorias() {

        $lista = $this->input->post('item');
        if ($lista != "") {
            foreach ($lista as $key) {
                $put = array('STATUS' => '0');
                $this->projetos->editaCategoria($key, $put);
            }echo "ok";
        } else {
            echo "Não foi selecionado nenhuma categoria para desativar.";
        }
    }

    public function submit_ativarCategorias() {

        $lista = $this->input->post('item');

        if ($lista != "") {
            foreach ($lista as $key) {
                $put = array('STATUS' => '1');
                $this->projetos->editaCategoria($key, $put);
            }
            echo "ok";
        } else {
            echo "não foi selecionado nenhuma categoria para ativar.";
        }
    }

   public function submitEdit_projeto() {
       DIE("finalizando");
       $codigo= $this->input->post('CODIGO');
       
        $put = array(
            'NOME' => $this->input->post('NOME'),
            'DESCRICAO' => $this->input->post('DESCRICAO'),
            'COD_CATEGORIA' => $this->input->post('CATEGORIA'),
            'COD_BANCA' => $this->input->post('BANCA'),
        );

        $id = $this->projetos->editaProjeto($codigo,$put);
        if ($id) {
            if ($this->input->post('disciplinas')!=""){
                $this->novoProjetoDisciplina($id, $this->input->post('disciplinas'), $this->input->post('bibliografia'));
            }
            if ($this->input->post('topicos')!=""){
                $this->novoProjetoTopico($id, $this->input->post('topicos'),$this->input->post('prioridade'));
            }

            /*  $cod_disciplinas = $this->input->post("disciplinas");
              foreach ($cod_disciplinas as $key => $codigo) {
              $dados = array(
              'COD_DISCIPLINA' => $codigo,
              'COD_PROJETO' => $id
              );
              $this->projetos->novoProjetoDisciplina($dados);
              } */


            echo "ok";
        } else {
            echo "Ocorreu um erro: " . trigger_error();
        }
    }
      public function pop_vincularDisciplina($codBanca) {
          
        $data['banca'] = $this->projetos->getBancaById($codBanca);
        $data['disciplinasVinculadas'] = $this->cadastros->getDisciplinasVinculadas($codBanca);
        $data['disciplinas'] = $this->cadastros->getDisciplinas();
        //print_r($data['disciplinasVinculadas']);
        
        $this->load->view('pop-ups/add_vinculoDisciplina', $data);
    }
       public function pop_addTopico($codBanca) {
        //die('aqui trocar');
        $data['banca'] = $this->projetos->getBancaById($codBanca);
        $data['disciplinas'] = $this->cadastros->getDisciplinasVinculadas($codBanca);
        
        $data['topicosVinculados'] = $this->cadastros->getTopicosVinculadas($codBanca);
        //$data['topicos'] =$this->cadastros->getTopicosNaoVinculadas($codBanca);
        $data['topicos']="";
        
     
        //$data['disciplinas'] = $this->cadastros->getDisciplinas();
        //print_r($data['disciplinasVinculadas']);
        
        $this->load->view('pop-ups/add_topicoBanca', $data);
    }
    public function jsonTopicosNaoVinculadas($codBanca,$codDisciplina){
        $topicos = $this->cadastros->getTopicosNaoVinculadas($codBanca,$codDisciplina);
        echo json_encode($topicos);
    }
    public function jsonTopicosVinculadas($codBanca,$codDisciplina){
        $topicos = $this->cadastros->getTopicosVinculadas($codBanca,$codDisciplina);
        if (is_null($topicos)){
            $ret="<strong>Não há topicos vinculado para esta banca, nesta disciplina!</strong>";
            
        }else{
            //$ret="<strong>UHU encontrei varios mano.!</strong><br>";
             $ret="<strong>Tópicos Vinculados.!</strong><br>";
            //$ret.="<ul>";
            foreach ($topicos as $topico) {
            $ret.="<div class='span3' style='width:180px;padding-bottom:10px;'>";
           
            $ret.="<a onclick=removerTopico(".$topico['CODIGO'].",".$topico['COD_TOPICO_BANCA'].",".$codBanca.",".$codDisciplina.") class='ico-trash btn btn-info remover'> ";
             $ret.=$topico['DESCRICAO']." | ".$topico['TOPICO_BANCA'];
            $ret.="</a>";
            $ret.="</div>";
            }
            //$ret.="</ul>";
        }
        echo $ret;
    }
    public function removerTopico($codTopico,$codTopicoBanca){       
        $dadosTopico['COD_TOPICO_BANCA'] = $codTopicoBanca;
        $dadosTopico['COD_TOPICO_LIVRO'] = $codTopico;
        
        if($this->projetos->removerTopicoBanca_topico($dadosTopico)){
            echo 'O tópico foi desvinculado da banca.';
        }
         
    }
    public function submitAdd_VincularDisciplina() {
        $cod_banca = $this->input->post('cod_banca');
        $disciplinas = $this->input->post('disciplinas');
        $disciplinasVinculadas=$this->input->post('disciplinasVinculadas');        
        if (!is_array($disciplinasVinculadas)){$disciplinasVinculadas=array();}
        $remover = array_diff($disciplinasVinculadas, $disciplinas);        
        foreach ($remover as $key => $codigo) {
            $dados = array(
                'COD_DISCIPLINA' => $codigo,
                'COD_BANCA' => $cod_banca
            );
            $this->projetos->removerBancaDisciplina($dados);            
        }
        foreach ($disciplinas as $key => $codigo) {
            $dados = array(
                'COD_DISCIPLINA' => $codigo,
                'COD_BANCA' => $cod_banca
            );
            $this->projetos->novaBancaDisciplina($dados);
            
        }
        //$TOPICOS = $this->input->post('TOPICOS');

        /*if ($TOPICOS != "") {
            foreach ($TOPICOS as $key => $codigo) {
                $dados = array(
                    'COD_TOPICO' => $codigo,
                    'COD_PROJETO' => $COD_PROJETO
                );
                $this->projetos->novoProjetoTopicos($dados);
            }
        }*/
        echo "ok";
    }
    public function submitAdd_VincularTopicos(){
        $cod_banca = $this->input->post('cod_banca');
        $topicoBanca = $this->input->post('topicoBanca');
        $topicos = $this->input->post('topico');
        $dados=array(
            'COD_BANCA'=>$cod_banca,
            'DESCRICAO'=>$topicoBanca           
        );
        $idbanca=$this->projetos->novoTopicoBanca($dados);
        if (!is_null($idbanca)){
            $dadosTopico['COD_TOPICO_BANCA'] = $idbanca;
            foreach ($topicos as $topico) {
            $dadosTopico['COD_TOPICO_LIVRO'] = $topico;
                $this->projetos->novoTopicoBanca_topico($dadosTopico);
            }
            echo 'ok';
        }
    }
    public function getDisciplinaByBanca($codbanca){
        $disciplinas=$this->projetos->getDisciplinaByBanca($codbanca);
        if (is_null($disciplinas)){
            $ret= "Não há disciplinas nesta banca";
        }else{
             $dados['disciplinas']=$this->projetos->getDisciplinaByBanca($codbanca);
              foreach ( $dados['disciplinas'] as $disciplina) {
                   $cod=$disciplina['CODIGO'];
                   $dados['bibliografias'][$cod]=$this->cadastros->getBibliografiaByDisciplina($cod);//$this->getBibliografia($cod);
                   $dados['topicos'][$cod]=$this->projetos->getTopicoBancaByDisciplina($codbanca,$cod);
              }
//              echo "<pre>";
//              print_r($dados['topicos']);
//              echo "</pre>";
//              die();
            echo $this->load->view("pop-ups/disciplinasByBanca.php",$dados,true);
            die();
            $ret="<strong>Desmarque as Disciplinas e/ou tópicos que deseja excluir do Projeto</strong><br  class='clear'>";
            foreach ($disciplinas as $disciplina) {
                $ret.="<fieldset>";
                $cod=$disciplina['CODIGO'];$desc=$disciplina['DESCRICAO'];
                $checked='checked';
                $ret.= "<div class='line'><label class='checkbox' for='dsc_$cod'><input type='checkbox' id='dsc_$cod' name='disciplinas[]' $checked value='$cod'>Disciplina: <b>$desc</b>  </label>";
                $ret.= $this->getBibliografia($cod);
                $ret.= "</div>";
                $ret.= $topicos=  $this->getTopicoBancaByDisciplina($codbanca,$cod);
                //print_r($topicos);
                 
                 $ret.="<br  class='clear'>";
                 $ret.="<hr>";
                 $ret.="</fieldset>";
            }
        }
        echo $ret;
        
    }
    public function getBibliografia($codDisciplina){
        $bibliografias= $this->cadastros->getBibliografiaByDisciplina($codDisciplina);
        $ret="<select name='bibliografia[$codDisciplina]'>";
        if (!is_null($bibliografias)){
            foreach ($bibliografias as $bibliografia) {
                $ret.= "<option value='".$bibliografia->CODIGO."'>";
                $ret.= $bibliografia->DESCRICAO;
                $ret.= "</option>";
                    
            }
        }else{
                   $ret.= "<option value=''>";
                $ret.= "Sem Bibliografia";
                $ret.= "</option>";
            }
        $ret.="</select>";
        return  $ret;
    }
    public function getTopicoBancaByDisciplina($codbanca,$codDisciplina){
        $topicos=$this->projetos->getTopicoBancaByDisciplina($codbanca,$codDisciplina);
        if (is_null($topicos)){
            $ret= "<br  class='clear'><strong>Não há Tópicos desta disciplina</strong>";
        }else{
            //$ret="<strong>Desmarque as Disciplinas que deseja excluir do Projeto</strong><br  class='clear'>";
            $ret="<br  class='clear'>";
            foreach ($topicos as $topico) {
                $cod=$topico['CODIGO'];$desc=$topico['DESCRICAO'];
                $checked='checked';
                $ret.="<label class='checkbox' for='top_$cod'><input type='checkbox' id='top_$cod' name='topicos[]' $checked value='$cod'>$desc</label>";
                $ret.="<input type='text' name='prioridade[$cod]' class='prioridade' placeholder='Prioridade'>";
                 $ret.="<br  class='clear'>";
            }
        }
        return $ret;
    }
}
